/**
 * 
 */
package com.omega.dao;

import java.io.Serializable;
import java.util.List;

/**
 * @author vpan14
 * @param <T>
 * 
 */
public interface GenericDao<T extends Serializable> {
	/**
	 * method to save an Entity
	 * 
	 * @param object
	 */
	void save(T object);

	/**
	 * method to delete an Entity
	 * 
	 * @param object
	 */
	void delete(T object);

	/**
	 * method to update an entity
	 * 
	 * @param object
	 */
	void update(T object);

	/**
	 * method to load an entity by its primary key
	 * 
	 * @param id
	 */
	T loadByid(long id);

	/**
	 * method to load all entities of a type
	 */
	List<T> loadAll();

	/**
	 * 
	 * @param id
	 */
	void deleteById(final long id);
	
	void setClazz(final Class<T> clazzToSet);

}
